package cn.jia.spring5.web.controller;

import cn.jia.spring5.entity.Spittle;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import javax.validation.Valid;

/**
 * Created by jia on 2018/4/4.
 */
@Controller
@RequestMapping(value = "/homeInfo")
public class HomeController {
    @RequestMapping(value = "getHome",method = RequestMethod.GET)
    public String getHome(){
        return "spring5/home";
    }

    /**
     * 通过参数获取资源
     * *@RequestParam注解会获取请求中的参数id，并和id1进行匹配,例如
     * testParam?id=1234,这种方式并不好，尽管这也可以正
     常工作，但是从面向资源的角度来看这并不理想。在理想情况下，要识别的资源
     应该通过URL路径进行标示
     * @param id1
     * @return
     */
    @RequestMapping(value = "testParam")
    public String testParam(@RequestParam("id")int id1){
        return null;
    }
    /**
     * * PathVariable注解可以获取占位符中的值。
     * 加入前台访问的路径为 testParam/1234
     * 通过url路径获取资源,如果占位符名称和参数名称相同，我们可以省略注解中的value，@PathVariable int id
     */
    @RequestMapping(value = "testParam/{id}",method = RequestMethod.GET)
    public String testParam1(@PathVariable("id")int id1){
        return null;
    }

    /**
     * *@Valid注解表示参数Spittle必须要通过参数校验
     * @param spittle
     * @return
     */
    @RequestMapping(value="testValidate")
    public String testValidate(@Valid Spittle spittle,Errors errors){
        if(errors.hasErrors()){
            return "";
        }
        return null;
    }

}
